/* 
 * File:   Command.h
 * Author: Muhammad Anis
 *
 * Created on November 1, 2012, 8:47 AM
 */
#include <iostream>
#include "../AbstractFile/AbstractFile.h"
#include "../Calendar/Calendar.h"

using namespace std;

#ifndef COMMAND_H
#define	COMMAND_H

class Command : AbstractFile{
private:
    string name;        
    void PrintCommand(char** argv);
    
public:
    void (Calendar::*instruction)(char** argv);    
    Command();
    Command(char* name,void (Calendar::*instruction)(char** argv));
    Command(const Command&);
    ~Command();
    
    bool operator==(const Command&);
    void Execute(Calendar&, char** argv);
    
    //Command Load();
    void Save();
    
    string GetName() const {
        return name;
    }

    void SetName(string name) {
        this->name = name;
    }

    
    
    
};

#endif	/* COMMAND_H */

